A storage subsystem can be implemented with multiple (e.g., an array of) physical storage devices. A storage volume, which is a logical unit of data, can be implemented across the physical storage devices. One reason for implementing a storage volume across plural physical storage devices is to provide redundancy, such as redundancy based on mirroring data (in which data of a first storage device is copied to a second storage device to provide redundancy). Another form of redundancy is parity-based redundancy (in which parity information of data stored in a group of storage devices is kept in another storage device). By providing redundancy, if a physical storage device (or any part of a physical storage device) from the multiple physical storage devices were to fail, then the data stored in the storage subsystem can still be recovered under certain conditions.
Conventionally, upon detection of a storage device (from among the plural storage devices used to implement storage volumes) as failed, the storage device is marked as failed and rendered unavailable for further use by any of the storage volumes.